package cn.itcast.myapplication.viewemodel;

import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.SavedStateHandle;
import androidx.lifecycle.ViewModel;

import cn.itcast.myapplication.activity.ViewModelRestore;

public class MyViewModel extends ViewModel {

    public int number;

    private SavedStateHandle handle;

    public MutableLiveData<Integer> mutableLiveData;

    //添加了依赖才有的方法
    //里面可以存放一些key和value 可以支持像整形 字符串 布尔都是可以的
    //当ViewModel被摧毁的时候，我们可以通过SavedStateHandle这个变量，当重新创建ViewModel的时候可以来重构数据
    public MyViewModel(SavedStateHandle handle){

        this.handle=handle;

    }

    public MyViewModel(){

    }

    public MutableLiveData<Integer> numbers;

    public MutableLiveData<Integer> getMutableLiveData() {

        //等于空直接创建不等于空直接返回出去,然后初始化
        if (mutableLiveData==null){

            mutableLiveData=new MutableLiveData<>();

            mutableLiveData.setValue(0);//设置为零

        }

           return mutableLiveData;

        }


    //获取数量
    public MutableLiveData<Integer> getNumbers() {

        //更具文档，这个系统传递过来的handle不会是空所以不需要判断空
        //值需要判断是否包含我们需要的数据
        if(handle.contains(ViewModelRestore.KEY_NUMBER)){

            //相当于程序第一次加载的时候
            handle.set(ViewModelRestore.KEY_NUMBER,0);//相当于初始化

         }

        return handle.getLiveData(ViewModelRestore.KEY_NUMBER);

    }

    //调用一次自身去加一
    public void add(){

            getNumbers().setValue(getNumbers().getValue()+1);


    }

}
